Voice scratchpad

ABSTRACT

Various embodiments of systems and methods to implement a voice scratchpad for deriving data from a voice communication are provided. The system may include a voice scratchpad module configured to detect an audio connection between an on-board vehicle computing device and a communications device, and present a selector on a voice scratchpad graphical user interface, which upon selection by a user causes the voice scratchpad module to process voice data received via the audio connection to obtain recognized speech data. The system may further include an annotation engine configured to annotate the recognized speech data to produce structured data in one of a plurality of predetermined formats. The voice scratchpad module may be configured to receive the structured data from the annotation engine, and display the structured data on voice scratchpad graphical user interface.

BACKGROUND

A user may want to record a portion of a conversation over a mobilephone in an environment in which writing a note by hand, or manuallyinputting data into an electronic device, is inconvenient or notpossible. For example, a driver of a vehicle may desire to record aphone number or address discussed in a telephone conversation whiledriving, for future reference. In order to operate the vehicle safely,the driver may choose to commit the telephone number to memory, stop thevehicle, and write the phone number down after the vehicle is stopped.However, this may interrupt the driver's route, and can result in errorsin data recall. Even small errors in an address or telephone number mayrender the recalled information unusable, causing delay and frustrationfor the driver.

SUMMARY

Various embodiments of systems and methods to implement a voicescratchpad for deriving data from a voice communication are provided.The system may include a voice scratchpad module configured to detect anaudio connection between an on-board vehicle computing device and acommunications device, and present a selector on a voice scratchpadgraphical user interface, which upon selection by a user causes thevoice scratchpad module to process voice data received via the audioconnection to obtain recognized speech data. The system may furtherinclude an annotation engine configured to annotate the recognizedspeech data to produce structured data in one of a plurality ofpredetermined formats. The voice scratchpad module may be configured toreceive the structured data from the annotation engine, and display thestructured data on voice scratchpad graphical user interface.

This Summary is provided to introduce concepts in a simplified form thatare further described below in the Detailed Description. This Summary isnot intended to identify key features or essential features of theclaimed subject matter, nor is it intended to be used to limit the scopeof the claimed subject matter. Furthermore, the claimed subject matteris not limited to implementations that solve any or all disadvantagesnoted in any part of this disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic view showing an example embodiment of a computersystem for deriving data from a voice communication.

FIG. 2 is a schematic view of a voice scratchpad graphical userinterface displayed on a display of the system of FIG. 1.

FIG. 3 is a schematic view of a clip management tool displayed on thedisplay of the system of FIG. 1.

FIG. 4 is a flowchart of an embodiment of a method for deriving datafrom a voice communication.

DETAILED DESCRIPTION

FIG. 1 shows an environment including a computer system 100 having voicescratchpad functionality. The computer system 100 includes a computingdevice 101 configured to execute a communication application 110 forrecording and processing a voice communication, and deriving anddisplaying structured data 190 representing the content of the voicecommunication in a voice scratchpad graphical user interface 180 onassociated display 170. It will be appreciated that the communicationapplication 110 may be stored in mass storage and executed by aprocessor using portions of memory of the computing device 101. Further,in some applications it will be understood that computer system 100 maybe an onboard communications platform installed in a vehicle, andcomputing device 101 may be an on-board vehicle computing device.

A user, such as a driver or passenger of the vehicle, may engage invoice communications, for example, by using a communications device,such as a microphone 122 or an onboard mobile telephone 124, thatcommunicates with the communication application 110 via a wired orwireless communications link with the computing device 101. Microphone122, for example, may be vehicle mounted or wireless headset microphonethat is used to input voice commands to the communications application110, for example. Mobile telephone 124 is typically configured toestablish telephone calls with called parties via a mobile telephonenetwork 126. Audio data for these telephone calls may be transmittedfrom the mobile telephone 124 to the communication application 110 asdescribed below.

The communications application 110 may further include a sync engine 114that is configured to establish a communications link with the mobiletelephone 124, and facilitate the exchange of audio data between thecommunications application 110 and the mobile telephone 124. This mayenable, for example, a hands-free calling session in which audio datafrom the call is transmitted from the mobile telephone 124 to thecommunication application 110 via the sync engine 114, and played viain-vehicle speakers, and user voice data is input via microphone 122,and transmitted via the sync engine back to the mobile telephone 124through the mobile telephone network to the called party, for example.In addition, the sync engine 114 may be used to initiate telephone callsbased on commands sent by the communications application to the mobiletelephone 124. Thus, the sync enginel 14 may function as a part of atelephone program 147 that manages communications between thecommunication application 110 and the mobile telephone 124.

Communications application 110 includes a voice scratchpad module 115configured to be executed on the computing device 101. The voicescratchpad module 115 is configured to detect an audio connection 127between the computing device 101 and a communications device such as themicrophone 122 or mobile telephone 124. Detecting the audio connection127 may include querying and receiving a response from the sync engine114 that the audio connection 127 is established, or querying andreceiving a response from a microphone driver or other software modulethat is configured to detect the audio connection 127 of the microphone122. Either prior to or in response to detecting the audio connection127, the voice scratchpad module 115 is configured to present the voicescratchpad graphical user interface 180 on the display 170 associatedwith the computing device 101.

As schematically illustrated, the graphical user interface 180 mayinclude a voice scratchpad selector 185, which upon selection by a usercauses the voice scratchpad module 115 to record voice data 113 receivedvia the audio connection 127, and process the voice data 113 receivedvia the audio connection 127 to generate recognized speech data. Theserecording and processing functions may be carried out directly by thevoice scratchpad module 115, or indirectly by other program modulesunder the control of the voice scratchpad module.

The voice data 113 may be received in a variety of formats via a varietyof audio connection types. As an example, the voice data 113 receivedfrom mobile telephone 124 may be in synchronous-connection-oriented(SCO) audio, while voice data 113 from microphone 122 may be in WAV(WINDOWS® audiovisual) or other file format. In one embodiment, the syncengine 114 may be configured to transcode incoming data from a firstformat to a second, such as from SCO audio to WAV file format, tofacilitate downstream processing. It will be appreciated that theseformats are merely exemplary and a wide variety of other formats may beemployed.

The voice scratchpad module 115 may be configured to process the voicedata 113, for example, by controlling a speech service 112 that isprovided within communication application 110 to process the voice data113 to generate recognized speech data 119. It will be understood thatthe voice data 113 is in audio form, while the recognized speech data119 is in text form, such as an ordered set of words organized intophrases and sentences. The speech service 112 may transmit the voicedata 113 to a speech recognition engine, which may be an onboard speechrecognition engine 118 executed on the computing device 101, or a remotespeech recognition engine 118A executed on a remote server and incommunication with the computing device 101 via a data network such asthe Internet. The speech recognition engine performs the conversion fromvoice data to recognized speech data and returns recognized speech data119 to the speech service 112.

Communication application 110 further includes an annotation engine 116configured to be executed on the computing device 101. The annotationengine is configured to annotate the recognized speech data 119 toproduce structured data 190 including one or more of several predefinedformats or types of data based on the recognized speech data 119. Thepredefined formats or types may include text data 182, contact data 192(including name, phone number email address, and/or physical address,etc.), address data 194 (including a physical address locatable on a mapof a region), and point of interest data 196, which indicates ageographic point of interest, such as a business, sightseeing location,public facility, etc. It will be appreciated that these predefined typesare merely illustrative and a wide variety of other predeterminedformats may be utilized. The structured data may also include links torelated applications 130 that may be used to interpret and furtherutilize the structured data. Alternatively, these links may beprogrammatically generated by the communication application based on adata type in structured data 190.

Following annotation, the voice scratchpad module 115 is configured toreceive the structured data 190 from the annotation engine 116, anddisplay the structured data 190 on voice scratchpad graphical userinterface 180, including any appropriate links to related applications130. The voice scratchpad module may be configured to display in thegraphical user interface 180 a link to a related application 130 foreach type of data in the structural data, the link being configured uponselection to launch the related application 130 and cause the relatedapplication to access the structured data 190. The voice scratchpadmodule may further be configured to output the structured data forfurther processing by the related application, either upon or prior toselection of the link. This may be achieved, for example, by storing thestructured data in a location on a data store accessible by the relatedapplication, for example.

It will be appreciated that the related applications 130 may be internalor external to communication application 110, and for example mayinclude navigation application 142, media application 144, and telephoneprogram 147 which are part of communication application 110, and abrowser 143 and contacts manager 145 which are independent ofcommunication application 110, as well as other applications. In thismanner, the user may select a link, for example, to input a contact intoa local contacts data store using contacts manager 145, map an addressor look up information for a point of interest using the navigationapplication 142, etc.

As discussed in detail with relation to FIG. 3 below, in someembodiments, voice scratchpad module 115 may be configured to storestructured data 190 for a plurality of voice data files and display inthe graphical user interface a clip management tool with one or moreoption selectors for managing structured data for a plurality of voicecommunications. For example, the clip management tool may enable a userto save, delete, display, and send to third parties by email, simplemessage service (SMS), etc., clips recorded using the voice scratchpadmodule.

In some embodiments, in response to a selection of the scratchpadselector 185 to initiate the recording and processing of voice data 113via the voice scratchpad graphical user interface 180, the voicescratchpad module 115 may be configured to provide a notification thatvoice data is going to be recorded. During a telephone call, thenotification may take the form, for example, of an audio announcementplayed back via the audio connection 127 so that all parties to thetelephone call may be notified of the recording as well as a visualnotification via the graphical user interface 180, for example. Asanother example, when a user is taking a notation via the microphone122, the notification may take the form of an audio announcement playedvia the speakers of the vehicle, or a visual notification 186 displayedvia graphical user interface 180 as shown in FIG. 2.

FIG. 2 illustrates an exemplary embodiment of graphical user interface180 displayed on display 170. In the illustrated scenario, the recordbutton has been pressed by a user and the voice scratchpad module isrecording and transcribing voice data from a detected audio connectionfrom a mobile telephone conversation, hence visual notification 186 isdisplayed. Structured data 190 derived from the voice data is displayedin a pane in the graphical user interface 180. In the structured data190, text data 182 is displayed as a transcription of the voice data113. The annotation engine 116 associated with the voice scratchpadmodule 115 has identified a contact, John Doe, and his telephone number,1-555-555-1212, and displays these separate as contact data 192. Theannotation engine has included add to contacts link 192A in the contactdata 192, the selection of which will launch the contacts manager 145and pass the contacts data 192 to the contacts manager 145 for furtherprocessing.

The annotation engine has also identified a point of interest, the SpaceNeedle, and identified associated information with the point ofinterest, namely the city, state and country in which the point ofinterest is located. The annotation engine has further included anavigation application link 196A in point of interest data 196, which ifselected launches the navigation application 142 and sends the point ofinterest data 196 to the navigation application for further processing.The annotation engine has also identified an address in the text data182, and listed it as address data 194, and further included a pluralityof links in the address data 194. Navigation application link 194Acauses the navigation application to be launched and display thelocation of the address contained within address data 194, whileselection of the add to contacts link 194B causes the contacts manager145 to be launched to enable a user to add the address to a localcontacts store.

As shown in FIG. 3, the voice scratchpad module may be configured todisplay a clip management tool 197 on the graphical user interface 180.The clip management tool 197 may be configured to display a list 198including structured data 190 for a plurality of voice communications,referred to as voice scratchpad clips in FIG. 3. The management tool 197may further be configured to display one or more option selectors 199for managing the structured data 190 in the list 198. A variety ofoption selectors 199 may be included, such as a save selector to save anew voice scratchpad clip, a delete selector to remove a voicescratchpad clip from the data store, and a display selector to cause thedetails of the voice scratchpad clip to be displayed in graphical userinterface 180, as illustrated in FIG. 2. The clip management tool 197may be displayed after the user records a portion of a voicecommunication using the interface shown in FIG. 2, and thus a name ofthe current clip may be displayed for editing to the user, as shown. Thesave selector may be selected by the user to save the current clip tothe data store, causing the clip to later appear in the list 198 ofstored clips.

FIG. 4 shows a process flow depicting an embodiment of a method 300 forderiving data from a voice communication. As indicated at 302, themethod may include detecting an audio connection between an on-boardvehicle computing device and a communications device. The communicationsdevice may be, for example, a microphone, a mobile telephone, or othercommunications device.

At 304, the method may include presenting a voice scratchpad graphicaluser interface on a display associated with the computing device. Asdescribed above, the voice scratchpad graphical user interface mayinclude a selector to initiate processing of the voice communication. At306, the method may include receiving a selection of the selector by auser to initiate voice data processing. At 308, the method may furtherinclude providing a notification that audio is going to be recorded,upon receiving a user selection of the selector to initiate processingof voice data. At 310, the method may include recording the audio fromthe audio connection, and at 312, the method may include storing thevoice data received via the audio connection in a data store, which maybe a local data store associated with the computing device, or remotedata store accessible by the computing device over a data network.

At 314, the method may include processing voice data received via theaudio connection to obtain recognized speech data in response toreceiving a selection of the selector by the user. As illustrated at316, processing the voice data may further include controlling a speechservice to process the voice data to generate the recognized speechdata. As described above, the speech service may be configured totransmit the voice data from the audio connection to a speechrecognition engine that is on board the vehicle or remotely connected tothe on-board vehicle computing device via a data network for processing,and to receive the recognized speech from the speech recognition enginein response.

At 318, the method may include annotating the recognized speech data toproduce structured data in one of a plurality of predetermined formatsbased on the recognized speech data. As described above, the structureddata may include data in one or more predetermined formats or datatypes, including contact data, address data, or point of interest data,and may also include links to related applications that are configuredto access structured data of each data type.

At 322, the method may include displaying the structured data on thevoice scratchpad graphical user interface. At 324, the method mayfurther include displaying in the graphical user interface a link foraccessing the structured data via a related application. It will beappreciated that the link to the related application may be storedwithin the structured data itself, and/or may be programmaticallygenerated based on a data type contained within the structured data.

At 326, the method may further include receiving a selection of the linkby the user. At 328, the method may further include accessing thestructured data with the related application, upon selection of the linkby the user. As described above, the related application may be aninternal or external application, and may be one or more of a contactsmanager, a navigation application, a media application, or a telephoneapplication. In this manner, as illustrated in FIG. 2, a link may bepresented to access contact data with a contacts manager program, tosend an address to a navigation application, for example, to compute aroute to or from the address, to look up information regarding a pointof interest with a browser or navigation application, or to initiate atelephone call to a contact telephone number using a telephone programas described above.

In some embodiments the method may include displaying a clip managementtool on the graphical user interface. As described above, the clipmanagement tool may be configured to display a list of structured datafor a plurality of voice communications, and one or more optionselectors for managing the structured data in the list. This may enablethe user to conveniently save and later retrieve data from prior voicecommunications.

The above described systems and methods may be employed to provide auser a convenient mechanism to derive data from a voice communicationand use that data with a related application program, for example, whentraveling in a vehicle.

It will be appreciated that the embodiments described herein may beimplemented, for example, via computer-executable instructions or code,such as programs, stored on a computer-readable storage medium andexecuted by a computing device. Generally, programs include routines,objects, components, data structures, and the like that performparticular tasks or implement particular abstract data types. As usedherein, the term “program” may connote a single program or multipleprograms acting in concert, and may be used to denote applications,services, or any other type or class of program. Likewise, the terms“computer” and “computing device” as used herein include any device thatelectronically executes one or more programs, including, but not limitedto, computing devices used in vehicles, mobile computing devices,communications devices coupled with remote computing devices such as aserver, etc.

It will further be understood that the configurations and/or approachesdescribed herein are exemplary in nature, and that these specificembodiments or examples are not to be considered in a limiting sense,because numerous variations are possible. The specific routines ormethods described herein may represent one or more of any number ofprocessing strategies. As such, various acts illustrated may beperformed in the sequence illustrated, in other sequences, in parallel,or in some cases omitted. Likewise, the order of any of theabove-described processes is not necessarily required to achieve thefeatures and/or results of the embodiments described herein, but isprovided for ease of illustration and description.

It should be understood that the embodiments herein are illustrative andnot restrictive, since the scope of the invention is defined by theappended claims rather than by the description preceding them, and allchanges that fall within metes and bounds of the claims, or equivalenceof such metes and bounds thereof are therefore intended to be embracedby the claims.

1. A method of deriving data from a voice communication, the method comprising: detecting an audio connection between an on-board vehicle computing device and a communications device; presenting a voice scratchpad graphical user interface on a display associated with the computing device, the voice scratchpad graphical user interface including a selector to initiate processing of the voice communication; receiving a selection of the selector by a user to initiate voice data processing; processing voice data received via the audio connection to obtain recognized speech data in response to receiving a selection of the selector by the user; annotating the recognized speech data to produce structured data in one of a plurality of predetermined formats based on the recognized speech data; and displaying the structured data on the voice scratchpad graphical user interface.
 2. The method of claim 1, wherein the structured data includes one or more of contact data, address data, or point of interest data.
 3. The method of claim 1, further comprising displaying in the graphical user interface a link for accessing the structured data via a related application.
 4. The method of claim 3, further comprising: receiving a selection of the link by the user; and accessing the structured data with the related application.
 5. The method of claim 4, wherein the related application is one or more of a contacts manager, a navigation application, a media application, or a telephone application.
 6. The method of claim 1, further comprising: displaying a clip management tool on the graphical user interface, the clip management tool being configured to display a list of structured data for a plurality of voice communications, and one or more option selectors for managing the structured data in the list.
 7. The method of claim 1, the method further comprising providing a notification that audio is going to be recorded, upon receiving a user selection of the selector to initiate processing of voice data.
 8. The method of claim 1, wherein and the communications device is a microphone or a mobile telephone.
 9. The method of claim 1, wherein processing the voice data further includes controlling a speech service to process the voice data to generate the recognized speech data.
 10. The method of claim 9, wherein the speech service is configured to transmit the voice data from the audio connection to a speech recognition engine that is onboard the vehicle or remotely connected to the on-board vehicle computing device via a data network for processing, and to receive the recognized speech from the speech recognition engine in response.
 11. A system for deriving data from a voice communication, the system comprising: a voice scratchpad module configured to be executed on an on-board vehicle computing device, the voice scratchpad module being configured to detect an audio connection between the on-board vehicle computing device and a communications device, the voice scratchpad module further being configured to present a voice scratchpad graphical user interface on a display associated with the computing device, the graphical user interface including a selector, which upon selection by a user causes the voice scratchpad module to process voice data received via the audio connection to obtain recognized speech data; and an annotation engine configured to be executed on the on-board vehicle computing device, the annotation engine being configured to annotate the recognized speech data to produce structured data in one of a plurality of predetermined formats based on the recognized speech data wherein the voice scratchpad module is configured to receive the structured data from the annotation engine, and display the structured data on voice scratchpad graphical user interface.
 12. The system of claim 11, wherein the voice scratchpad module is configured to display a clip management tool on the graphical user interface, the clip management tool being configured to display a list of structured data for a plurality of voice communications, and one or more option selectors for managing the structured data in the list.
 13. The system of claim 11, wherein the structured data includes a plurality of different data types, including text data, contact data, address data, and/or point of interest data.
 14. The system of claim 12, wherein the voice scratchpad module is configured to display in the graphical user interface a link to a related application for each type of data in the structural data, the link being configured to launch the related application upon selection, the voice scratchpad module further being configured to output the structured data for further processing by the related application.
 15. The system of claim 14, wherein the related application is one or more of a contacts manager, a navigation application, a media application, or a telephone application.
 16. The system of claim 11, wherein in response to a selection of the selector for initiating a voice scratchpad, the voice scratchpad module is configured to provide a notification that voice data is going to be recorded.
 17. The system of claim 11, wherein the communications device is a microphone or a mobile telephone.
 18. The system of claim 11, wherein voice scratchpad module is configured to process the voice data by controlling a speech service to process the voice data to generate the recognized speech data.
 19. The system of claim 18, wherein the speech service is configured to transmit the voice data from the audio connection to a speech recognition engine that is either onboard the vehicle or remotely connected to the on-board vehicle computing device via a data network, and receive the recognized speech from the speech recognition engine in response.
 20. A method of deriving data from a voice communication, the method comprising: detecting an audio connection between an on-board vehicle computing device and a communications device, wherein the communications device is a microphone or a mobile telephone; presenting a voice scratchpad graphical user interface on a display associated with the computing device, the voice scratchpad graphical user interface including a selector to initiate processing of the voice communication; receiving a selection of the selector by a user to initiate voice data processing; processing voice data received via the audio connection to obtain recognized speech data in response to receiving a selection of the selector by the user; annotating the recognized speech data to produce structured data in one of a plurality of predetermined formats based on the recognized speech data; displaying the structured data on the voice scratchpad graphical user interface; and displaying in the graphical user interface a link for accessing the structured data via a related application; wherein the predetermined format of the structured data includes one or more of contact data, address data, or point of interest data, and the related application is one or more of a contacts manager, a navigation application, a media application, or a telephone application. 